System.Nullable<T-Struktur>
Dieser Artikel enthält ergänzende Hinweise zur Referenzdokumentation für diese API.
Die Nullable Klasse stellt einen Werttyp dar, der zugewiesen null
werden kann.
Ein Typ ist als Nullwerte zulässig, wenn ihm ein Wert zugewiesen oder zugewiesen null
werden kann, was bedeutet, dass der Typ über keinen Wert verfügt. Standardmäßig sind alle Verweistypen, z String. B. nullfähig, aber alle Werttypen, z Int32. B. , sind nicht zulässig.
In C# und Visual Basic markieren Sie einen Werttyp als Nullwerte, indem Sie die ?
Schreibweise nach dem Werttyp verwenden. In C# oder Integer?
Visual Basic wird beispielsweise ein ganzzahliger Werttyp deklariert, int?
der zugewiesen null
werden kann.
Die Nullable<T> Struktur unterstützt nur die Verwendung eines Werttyps als nullablen Typ, da Verweistypen entwurfsbedingt nullfähig sind.
Die Nullable Klasse bietet ergänzende Unterstützung für die Nullable<T> Struktur. Die Nullable Klasse unterstützt das Abrufen des zugrunde liegenden Typs eines nullfähigen Typs sowie Vergleichs- und Gleichheitsvorgänge für Paare nullabler Typen, deren zugrunde liegender Werttyp keine generischen Vergleichs- und Gleichheitsvorgänge unterstützt.
Grundlegende Eigenschaften
Die beiden grundlegenden Elemente der Nullable<T> Struktur sind die und Value die HasValue Eigenschaften. Wenn die HasValue Eigenschaft für ein Nullable<T> Objekt lautet true
, kann mit der Value Eigenschaft auf den Wert des Objekts zugegriffen werden. Wenn die HasValue Eigenschaft lautet, wird false
der Wert des Objekts nicht definiert, und ein Versuch, auf die Value Eigenschaft zuzugreifen, löst eine InvalidOperationException.
Boxing und Unboxing
Wenn ein Null-Wert eingegeben werden kann, ordnet die Common Language Runtime automatisch den zugrunde liegenden Wert des Nullable<T> Objekts und nicht das Nullable<T> Objekt selbst ein. Das heißt, wenn die HasValue Eigenschaft lautet true
, wird der Inhalt der Value Eigenschaft boxt. Wenn der zugrunde liegende Wert eines nullfähigen Typs unboxiert ist, erstellt die Common Language Runtime eine neue Nullable<T> Struktur, die für den zugrunde liegenden Wert initialisiert wurde.
Wenn die HasValue
Eigenschaft eines nullablen Typs lautet, lautet false
null
das Ergebnis eines Boxvorgangs. Wenn also ein boxter nullabler Typ an eine Methode übergeben wird, die ein Objektargument erwartet, muss diese Methode vorbereitet sein, um den Fall zu behandeln, in dem das Argument angegeben ist null
. Wenn null
der Posteingang in einen nullfähigen Typ aufgehoben wird, erstellt die Common Language Runtime eine neue Nullable<T> Struktur und initialisiert seine HasValue
Eigenschaft auf false
.
Komponenten für Windows-Runtime
Sie können einen Nullable<T> Typ als Element einer Struktur einschließen, die in eine WinMD-Bibliothek exportiert wird.